<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE CPP #-}</span><span>
</span><span id="line-2"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-3"></span><span class="hs-comment">-- Stability: unstable</span><span>
</span><span id="line-4"></span><span class="hs-comment">-- Portability: portable</span><span>
</span><span id="line-5"></span><span class="hs-comment">--</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- Internal modules are always subject to change from version to version.</span><span>
</span><span id="line-7"></span><span>
</span><span id="line-8"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">System.Directory.Internal.Prelude</span><span>
</span><span id="line-9"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span class="hs-cpp">
#if !MIN_VERSION_base(4, 6, 0)
</span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">forkFinally</span><span>
</span><span id="line-12"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">lookupEnv</span><span class="hs-cpp">
#endif
</span><span class="hs-cpp">#if !MIN_VERSION_base(4, 8, 0)
</span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Control.Applicative</span><span>
</span><span id="line-16"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Data.Functor</span><span class="hs-cpp">
#endif
</span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Control.Arrow.html#"><span class="hs-identifier">Control.Arrow</span></a></span><span>
</span><span id="line-19"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Control.Concurrent.html#"><span class="hs-identifier">Control.Concurrent</span></a></span><span>
</span><span id="line-20"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.html#"><span class="hs-identifier">Control.Exception</span></a></span><span>
</span><span id="line-21"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#"><span class="hs-identifier">Control.Monad</span></a></span><span>
</span><span id="line-22"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#"><span class="hs-identifier">Data.Bits</span></a></span><span>
</span><span id="line-23"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.Char.html#"><span class="hs-identifier">Data.Char</span></a></span><span>
</span><span id="line-24"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.Foldable.html#"><span class="hs-identifier">Data.Foldable</span></a></span><span>
</span><span id="line-25"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.Function.html#"><span class="hs-identifier">Data.Function</span></a></span><span>
</span><span id="line-26"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.Maybe.html#"><span class="hs-identifier">Data.Maybe</span></a></span><span>
</span><span id="line-27"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.Monoid.html#"><span class="hs-identifier">Data.Monoid</span></a></span><span>
</span><span id="line-28"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.IORef.html#"><span class="hs-identifier">Data.IORef</span></a></span><span>
</span><span id="line-29"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Data.Traversable.html#"><span class="hs-identifier">Data.Traversable</span></a></span><span>
</span><span id="line-30"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Foreign.html#"><span class="hs-identifier">Foreign</span></a></span><span>
</span><span id="line-31"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.html#"><span class="hs-identifier">Foreign.C</span></a></span><span>
</span><span id="line-32"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Encoding.html#"><span class="hs-identifier">GHC.IO.Encoding</span></a></span><span>
</span><span id="line-33"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#"><span class="hs-identifier">GHC.IO.Exception</span></a></span><span>
</span><span id="line-34"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/System.Environment.html#"><span class="hs-identifier">System.Environment</span></a></span><span>
</span><span id="line-35"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/System.Exit.html#"><span class="hs-identifier">System.Exit</span></a></span><span>
</span><span id="line-36"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/System.IO.html#"><span class="hs-identifier">System.IO</span></a></span><span>
</span><span id="line-37"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#"><span class="hs-identifier">System.IO.Error</span></a></span><span>
</span><span id="line-38"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/System.Posix.Internals.html#"><span class="hs-identifier">System.Posix.Internals</span></a></span><span>
</span><span id="line-39"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/System.Posix.Types.html#"><span class="hs-identifier">System.Posix.Types</span></a></span><span>
</span><span id="line-40"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-keyword">module</span><span> </span><span class="annot"><a href="../../base/src/System.Timeout.html#"><span class="hs-identifier">System.Timeout</span></a></span><span>
</span><span id="line-41"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Void.html#Void"><span class="hs-identifier">Void</span></a></span><span>
</span><span id="line-42"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span class="hs-cpp">
#if MIN_VERSION_base(4, 6, 0)
</span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Environment.html#"><span class="hs-identifier">System.Environment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/System.Environment.html#lookupEnv"><span class="hs-identifier">lookupEnv</span></a></span><span class="hs-special">)</span><span class="hs-cpp">
#else
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Prelude</span><span> </span><span class="hs-keyword">hiding</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">catch</span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span class="hs-cpp">#if MIN_VERSION_base(4, 8, 0)
</span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Void.html#"><span class="hs-identifier">Data.Void</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Void.html#Void"><span class="hs-identifier">Void</span></a></span><span class="hs-special">)</span><span class="hs-cpp">
#else
</span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Control.Applicative</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Applicative</span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-operator">&lt;*&gt;</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-operator">*&gt;</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-identifier">pure</span><span class="hs-special">)</span><span>
</span><span id="line-52"></span><span class="hs-keyword">import</span><span> </span><span class="hs-identifier">Data.Functor</span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span class="hs-operator">&lt;$&gt;</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="hs-operator">&lt;$</span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-cpp">
#endif
</span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Arrow.html#"><span class="hs-identifier">Control.Arrow</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Control.Arrow.html#second"><span class="hs-identifier">second</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-55"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Concurrent.html#"><span class="hs-identifier">Control.Concurrent</span></a></span><span>
</span><span id="line-56"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Conc.Sync.html#forkIO"><span class="hs-identifier">forkIO</span></a></span><span>
</span><span id="line-57"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Conc.Sync.html#killThread"><span class="hs-identifier">killThread</span></a></span><span>
</span><span id="line-58"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.MVar.html#newEmptyMVar"><span class="hs-identifier">newEmptyMVar</span></a></span><span>
</span><span id="line-59"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.MVar.html#putMVar"><span class="hs-identifier">putMVar</span></a></span><span>
</span><span id="line-60"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.MVar.html#readMVar"><span class="hs-identifier">readMVar</span></a></span><span>
</span><span id="line-61"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.MVar.html#takeMVar"><span class="hs-identifier">takeMVar</span></a></span><span class="hs-cpp">
#if MIN_VERSION_base(4, 6, 0)
</span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Concurrent.html#forkFinally"><span class="hs-identifier">forkFinally</span></a></span><span class="hs-cpp">
#else
</span><span>  </span><span class="hs-special">,</span><span> </span><span class="hs-identifier">ThreadId</span><span class="hs-cpp">
#endif
</span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-68"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.html#"><span class="hs-identifier">Control.Exception</span></a></span><span>
</span><span id="line-69"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Exception.Type.html#SomeException"><span class="hs-identifier">SomeException</span></a></span><span>
</span><span id="line-70"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.Base.html#bracket"><span class="hs-identifier">bracket</span></a></span><span>
</span><span id="line-71"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.Base.html#bracket_"><span class="hs-identifier">bracket_</span></a></span><span>
</span><span id="line-72"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#catch"><span class="hs-identifier">catch</span></a></span><span>
</span><span id="line-73"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.Base.html#finally"><span class="hs-identifier">finally</span></a></span><span>
</span><span id="line-74"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#mask"><span class="hs-identifier">mask</span></a></span><span>
</span><span id="line-75"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.Base.html#onException"><span class="hs-identifier">onException</span></a></span><span>
</span><span id="line-76"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.html#throwIO"><span class="hs-identifier">throwIO</span></a></span><span>
</span><span id="line-77"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Exception.Base.html#try"><span class="hs-identifier">try</span></a></span><span>
</span><span id="line-78"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-79"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#"><span class="hs-identifier">Control.Monad</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Control.Monad.html#%3E%3D%3E"><span class="hs-operator">(&gt;=&gt;)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#%3C%3D%3C"><span class="hs-operator">(&lt;=&lt;)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#unless"><span class="hs-identifier">unless</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#when"><span class="hs-identifier">when</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#replicateM"><span class="hs-identifier">replicateM</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#replicateM_"><span class="hs-identifier">replicateM_</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-80"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#"><span class="hs-identifier">Data.Bits</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Bits.html#.%26."><span class="hs-operator">(.&amp;.)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#.%7C."><span class="hs-operator">(.|.)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Bits.html#complement"><span class="hs-identifier">complement</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-81"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Char.html#"><span class="hs-identifier">Data.Char</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Unicode.html#isAlpha"><span class="hs-identifier">isAlpha</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Unicode.html#isAscii"><span class="hs-identifier">isAscii</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Unicode.html#toLower"><span class="hs-identifier">toLower</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Unicode.html#toUpper"><span class="hs-identifier">toUpper</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-82"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Foldable.html#"><span class="hs-identifier">Data.Foldable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Foldable.html#for_"><span class="hs-identifier">for_</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Foldable.html#traverse_"><span class="hs-identifier">traverse_</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-83"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Function.html#"><span class="hs-identifier">Data.Function</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Function.html#on"><span class="hs-identifier">on</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-84"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Maybe.html#"><span class="hs-identifier">Data.Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Maybe.html#catMaybes"><span class="hs-identifier">catMaybes</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Maybe.html#fromMaybe"><span class="hs-identifier">fromMaybe</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Data.Maybe.html#maybeToList"><span class="hs-identifier">maybeToList</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-85"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Monoid.html#"><span class="hs-identifier">Data.Monoid</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#%3C%3E"><span class="hs-operator">(&lt;&gt;)</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#mconcat"><span class="hs-identifier">mconcat</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#mempty"><span class="hs-identifier">mempty</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-86"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.IORef.html#"><span class="hs-identifier">Data.IORef</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.IORef.html#IORef"><span class="hs-identifier">IORef</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IORef.html#newIORef"><span class="hs-identifier">newIORef</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IORef.html#readIORef"><span class="hs-identifier">readIORef</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IORef.html#writeIORef"><span class="hs-identifier">writeIORef</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-87"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Traversable.html#"><span class="hs-identifier">Data.Traversable</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Traversable.html#for"><span class="hs-identifier">for</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-88"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Foreign.html#"><span class="hs-identifier">Foreign</span></a></span><span>
</span><span id="line-89"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.Ptr.html#Ptr"><span class="hs-identifier">Ptr</span></a></span><span>
</span><span id="line-90"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#Storable"><span class="hs-identifier">Storable</span></a></span><span>
</span><span id="line-91"></span><span>    </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#alignment"><span class="hs-identifier">alignment</span></a></span><span>
</span><span id="line-92"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#peek"><span class="hs-identifier">peek</span></a></span><span>
</span><span id="line-93"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#peekByteOff"><span class="hs-identifier">peekByteOff</span></a></span><span>
</span><span id="line-94"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#peekElemOff"><span class="hs-identifier">peekElemOff</span></a></span><span>
</span><span id="line-95"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#poke"><span class="hs-identifier">poke</span></a></span><span>
</span><span id="line-96"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#pokeByteOff"><span class="hs-identifier">pokeByteOff</span></a></span><span>
</span><span id="line-97"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#pokeElemOff"><span class="hs-identifier">pokeElemOff</span></a></span><span>
</span><span id="line-98"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Storable.html#sizeOf"><span class="hs-identifier">sizeOf</span></a></span><span>
</span><span id="line-99"></span><span>    </span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Marshal.Alloc.html#alloca"><span class="hs-identifier">alloca</span></a></span><span>
</span><span id="line-101"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Marshal.Array.html#allocaArray"><span class="hs-identifier">allocaArray</span></a></span><span>
</span><span id="line-102"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Marshal.Alloc.html#allocaBytes"><span class="hs-identifier">allocaBytes</span></a></span><span>
</span><span id="line-103"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Marshal.Alloc.html#allocaBytesAligned"><span class="hs-identifier">allocaBytesAligned</span></a></span><span>
</span><span id="line-104"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Marshal.Utils.html#maybeWith"><span class="hs-identifier">maybeWith</span></a></span><span>
</span><span id="line-105"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Ptr.html#nullPtr"><span class="hs-identifier">nullPtr</span></a></span><span>
</span><span id="line-106"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.Ptr.html#plusPtr"><span class="hs-identifier">plusPtr</span></a></span><span>
</span><span id="line-107"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Marshal.Utils.html#with"><span class="hs-identifier">with</span></a></span><span>
</span><span id="line-108"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.Marshal.Array.html#withArray"><span class="hs-identifier">withArray</span></a></span><span>
</span><span id="line-109"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-110"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.html#"><span class="hs-identifier">Foreign.C</span></a></span><span>
</span><span id="line-111"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Types.html#CInt"><span class="hs-identifier">CInt</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-112"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Types.html#CLong"><span class="hs-identifier">CLong</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-113"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.String.html#CString"><span class="hs-identifier">CString</span></a></span><span>
</span><span id="line-114"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Types.html#CTime"><span class="hs-identifier">CTime</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-115"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Types.html#CUChar"><span class="hs-identifier">CUChar</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-116"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Types.html#CULong"><span class="hs-identifier">CULong</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-117"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Types.html#CUShort"><span class="hs-identifier">CUShort</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-118"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.String.html#CWString"><span class="hs-identifier">CWString</span></a></span><span>
</span><span id="line-119"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Types.html#CWchar"><span class="hs-identifier">CWchar</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span>
</span><span id="line-120"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.String.html#peekCString"><span class="hs-identifier">peekCString</span></a></span><span>
</span><span id="line-121"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.String.html#peekCWStringLen"><span class="hs-identifier">peekCWStringLen</span></a></span><span>
</span><span id="line-122"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Error.html#throwErrnoIfMinus1Retry_"><span class="hs-identifier">throwErrnoIfMinus1Retry_</span></a></span><span>
</span><span id="line-123"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Error.html#throwErrnoIfMinus1_"><span class="hs-identifier">throwErrnoIfMinus1_</span></a></span><span>
</span><span id="line-124"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Error.html#throwErrnoIfNull"><span class="hs-identifier">throwErrnoIfNull</span></a></span><span>
</span><span id="line-125"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.Error.html#throwErrnoPathIfMinus1_"><span class="hs-identifier">throwErrnoPathIfMinus1_</span></a></span><span>
</span><span id="line-126"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.String.html#withCString"><span class="hs-identifier">withCString</span></a></span><span>
</span><span id="line-127"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/Foreign.C.String.html#withCWString"><span class="hs-identifier">withCWString</span></a></span><span>
</span><span id="line-128"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-129"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#"><span class="hs-identifier">GHC.IO.Exception</span></a></span><span>
</span><span id="line-130"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#IOErrorType"><span class="hs-identifier">IOErrorType</span></a></span><span>
</span><span id="line-131"></span><span>    </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#InappropriateType"><span class="hs-identifier">InappropriateType</span></a></span><span>
</span><span id="line-132"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#InvalidArgument"><span class="hs-identifier">InvalidArgument</span></a></span><span>
</span><span id="line-133"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#OtherError"><span class="hs-identifier">OtherError</span></a></span><span>
</span><span id="line-134"></span><span>    </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#UnsupportedOperation"><span class="hs-identifier">UnsupportedOperation</span></a></span><span>
</span><span id="line-135"></span><span>    </span><span class="hs-special">)</span><span>
</span><span id="line-136"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-137"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Encoding.html#"><span class="hs-identifier">GHC.IO.Encoding</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.IO.Encoding.html#getFileSystemEncoding"><span class="hs-identifier">getFileSystemEncoding</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-138"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Environment.html#"><span class="hs-identifier">System.Environment</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/System.Environment.html#getArgs"><span class="hs-identifier">getArgs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.Environment.html#getEnv"><span class="hs-identifier">getEnv</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-139"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Exit.html#"><span class="hs-identifier">System.Exit</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/System.Exit.html#exitFailure"><span class="hs-identifier">exitFailure</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-140"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.IO.html#"><span class="hs-identifier">System.IO</span></a></span><span>
</span><span id="line-141"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Types.html#Handle"><span class="hs-identifier">Handle</span></a></span><span>
</span><span id="line-142"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.IOMode.html#IOMode"><span class="hs-identifier">IOMode</span></a></span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.IO.IOMode.html#ReadMode"><span class="hs-identifier">ReadMode</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.IOMode.html#WriteMode"><span class="hs-identifier">WriteMode</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-143"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.html#hClose"><span class="hs-identifier">hClose</span></a></span><span>
</span><span id="line-144"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.html#hFlush"><span class="hs-identifier">hFlush</span></a></span><span>
</span><span id="line-145"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Text.html#hGetBuf"><span class="hs-identifier">hGetBuf</span></a></span><span>
</span><span id="line-146"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Text.html#hPutBuf"><span class="hs-identifier">hPutBuf</span></a></span><span>
</span><span id="line-147"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Text.html#hPutStr"><span class="hs-identifier">hPutStr</span></a></span><span>
</span><span id="line-148"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Handle.Text.html#hPutStrLn"><span class="hs-identifier">hPutStrLn</span></a></span><span>
</span><span id="line-149"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.html#openBinaryTempFile"><span class="hs-identifier">openBinaryTempFile</span></a></span><span>
</span><span id="line-150"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.StdHandles.html#stderr"><span class="hs-identifier">stderr</span></a></span><span>
</span><span id="line-151"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.StdHandles.html#stdout"><span class="hs-identifier">stdout</span></a></span><span>
</span><span id="line-152"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.html#withBinaryFile"><span class="hs-identifier">withBinaryFile</span></a></span><span>
</span><span id="line-153"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-154"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#"><span class="hs-identifier">System.IO.Error</span></a></span><span>
</span><span id="line-155"></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#IOError"><span class="hs-identifier">IOError</span></a></span><span>
</span><span id="line-156"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#catchIOError"><span class="hs-identifier">catchIOError</span></a></span><span>
</span><span id="line-157"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#illegalOperationErrorType"><span class="hs-identifier">illegalOperationErrorType</span></a></span><span>
</span><span id="line-158"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#ioeGetErrorString"><span class="hs-identifier">ioeGetErrorString</span></a></span><span>
</span><span id="line-159"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#ioeGetErrorType"><span class="hs-identifier">ioeGetErrorType</span></a></span><span>
</span><span id="line-160"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#ioeGetLocation"><span class="hs-identifier">ioeGetLocation</span></a></span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#ioeSetErrorString"><span class="hs-identifier">ioeSetErrorString</span></a></span><span>
</span><span id="line-162"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#ioeSetFileName"><span class="hs-identifier">ioeSetFileName</span></a></span><span>
</span><span id="line-163"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#ioeSetLocation"><span class="hs-identifier">ioeSetLocation</span></a></span><span>
</span><span id="line-164"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#isAlreadyExistsError"><span class="hs-identifier">isAlreadyExistsError</span></a></span><span>
</span><span id="line-165"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#isDoesNotExistError"><span class="hs-identifier">isDoesNotExistError</span></a></span><span>
</span><span id="line-166"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#isIllegalOperation"><span class="hs-identifier">isIllegalOperation</span></a></span><span>
</span><span id="line-167"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#isPermissionError"><span class="hs-identifier">isPermissionError</span></a></span><span>
</span><span id="line-168"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#mkIOError"><span class="hs-identifier">mkIOError</span></a></span><span>
</span><span id="line-169"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#modifyIOError"><span class="hs-identifier">modifyIOError</span></a></span><span>
</span><span id="line-170"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#permissionErrorType"><span class="hs-identifier">permissionErrorType</span></a></span><span>
</span><span id="line-171"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/System.IO.Error.html#tryIOError"><span class="hs-identifier">tryIOError</span></a></span><span>
</span><span id="line-172"></span><span>  </span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../base/src/GHC.IO.Exception.html#userError"><span class="hs-identifier">userError</span></a></span><span>
</span><span id="line-173"></span><span>  </span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Posix.Internals.html#"><span class="hs-identifier">System.Posix.Internals</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/System.Posix.Internals.html#withFilePath"><span class="hs-identifier">withFilePath</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-175"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Posix.Types.html#"><span class="hs-identifier">System.Posix.Types</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/System.Posix.Types.html#EpochTime"><span class="hs-identifier">EpochTime</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-176"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/System.Timeout.html#"><span class="hs-identifier">System.Timeout</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/System.Timeout.html#timeout"><span class="hs-identifier">timeout</span></a></span><span class="hs-special">)</span><span class="hs-cpp">

#if !MIN_VERSION_base(4, 6, 0)
</span><span class="hs-identifier">lookupEnv</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">String</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">IO</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Maybe</span><span> </span><span class="hs-identifier">String</span><span class="hs-special">)</span><span>
</span><span id="line-180"></span><span class="hs-identifier">lookupEnv</span><span> </span><span class="hs-identifier">name</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-181"></span><span>  </span><span class="hs-identifier">env</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="hs-identifier">tryIOError</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">getEnv</span><span> </span><span class="hs-identifier">name</span><span class="hs-special">)</span><span>
</span><span id="line-182"></span><span>  </span><span class="hs-keyword">case</span><span> </span><span class="hs-identifier">env</span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-183"></span><span>    </span><span class="hs-identifier">Left</span><span> </span><span class="hs-identifier">err</span><span> </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">isDoesNotExistError</span><span> </span><span class="hs-identifier">err</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">pure</span><span> </span><span class="hs-identifier">Nothing</span><span>
</span><span id="line-184"></span><span>             </span><span class="hs-glyph">|</span><span> </span><span class="hs-identifier">otherwise</span><span>               </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">throwIO</span><span> </span><span class="hs-identifier">err</span><span>
</span><span id="line-185"></span><span>    </span><span class="hs-identifier">Right</span><span> </span><span class="hs-identifier">value</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">pure</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Just</span><span> </span><span class="hs-identifier">value</span><span class="hs-special">)</span><span>
</span><span id="line-186"></span><span>
</span><span id="line-187"></span><span class="hs-identifier">forkFinally</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">IO</span><span> </span><span class="hs-identifier">a</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">Either</span><span> </span><span class="hs-identifier">SomeException</span><span> </span><span class="hs-identifier">a</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">IO</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-identifier">IO</span><span> </span><span class="hs-identifier">ThreadId</span><span>
</span><span id="line-188"></span><span class="hs-identifier">forkFinally</span><span> </span><span class="hs-identifier">action</span><span> </span><span class="hs-identifier">and_then</span><span> </span><span class="hs-glyph">=</span><span>
</span><span id="line-189"></span><span>  </span><span class="hs-identifier">mask</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-glyph">\</span><span class="hs-identifier">restore</span><span> </span><span class="hs-glyph">-&gt;</span><span>
</span><span id="line-190"></span><span>    </span><span class="hs-identifier">forkIO</span><span> </span><span class="hs-operator">$</span><span> </span><span class="hs-identifier">try</span><span> </span><span class="hs-special">(</span><span class="hs-identifier">restore</span><span> </span><span class="hs-identifier">action</span><span class="hs-special">)</span><span> </span><span class="hs-operator">&gt;&gt;=</span><span> </span><span class="hs-identifier">and_then</span><span class="hs-cpp">
#endif
</span><span class="hs-cpp">
#if !MIN_VERSION_base(4, 8, 0)
</span><span class="hs-keyword">data</span><span> </span><span class="hs-identifier">Void</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">Void</span><span>
</span><span id="line-195"></span><span>
</span><span id="line-196"></span><span class="hs-identifier">_unusedVoid</span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-identifier">Void</span><span>
</span><span id="line-197"></span><span class="hs-identifier">_unusedVoid</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-identifier">Void</span><span class="hs-cpp">
#endif
</span></pre></body></html>